import ElementPlus from 'element-plus'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import 'element-plus/dist/index.css'
import { createApp } from 'vue'
import App from './App.vue'
import router from '@/router/index.js' // 引入路由
import DOMPurify from 'dompurify';
import 'font-awesome/css/font-awesome.css';
// 导入工具函数
import * as Tool from '@/utils/tool.js';
// 导入自定义 SvgIcon 组件
import SvgIcon from '@/components/commons/SvgIcon/index.vue';

//  导入 SVG 图标注册脚本
import 'virtual:svg-icons-register';


const app = createApp(App)
// 全局挂载工具函数
app.config.globalProperties.$tool = Tool; 

// 先注册组件，再 mount！
app.use(ElementPlus)
app.use(router) // 使用路由

// 自动导入 Element Plus 图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component as any)
}

//全局注册 SvgIcon 组件（必须在 mount 前）
app.component('SvgIcon', SvgIcon);

// 全局提供 DOMPurify
app.config.globalProperties.$purify = DOMPurify;

// 最后 mount（顺序不能乱）
app.mount('#app')